package com.mxpio.erp.common.sales.service;

import com.mxpio.erp.common.jpa.model.OrderLineKey;
import com.mxpio.erp.common.sales.entity.SalesOrderLine;
import com.mxpio.erp.common.sales.vo.SOLineExecDetailVO;
import com.mxpio.erp.common.sales.vo.SOLinePlanDetailVO;
import com.mxpioframework.jpa.query.Criteria;
import com.mxpioframework.system.service.BaseService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

public interface SalesOrderLineService extends BaseService<SalesOrderLine> {
    List<SalesOrderLine> list(Criteria c);

    List<SalesOrderLine> auditList(Criteria c);

    Page<SalesOrderLine> listPage(Pageable page, Criteria c);

    List<SalesOrderLine> listPageAll(Criteria c);

    @Transactional(readOnly = false)
    Page<SalesOrderLine> listPageUnFinished(Pageable page, Criteria c);

    SalesOrderLine getById(OrderLineKey id);

    List<SOLineExecDetailVO> getExecDetails(String bizNo, String lineNo, String accessType);

    List<SOLinePlanDetailVO> getPlanDetails(String bizNo, String lineNo, String accessType);

    void getDefaultWhCode(List<SalesOrderLine> pageList);
}
